For that context it would be better to use setp[].weapon_pos -9

That will force the weapon down to the bottom of the screen like you were switching weapons and not allow the player to fire. As soon as you stop setting it to -9, it will smoothly come back up.

Now let's say that quotes 150 to 155 are used for the conversation (just picking numbers at random), and are not used for other purposes. Then the following code would work in the APLAYER actor:

ifg player[].fta 0 ifge player[].ftq 150 ifle player[].ftq 155 setp[].weapon_pos -9

But it would be better to do it in the same block of code that is locking the player. 